From: Carlos Garnacho Date: Fri, 26 Apr 2019 11:03:42 +0000 (+0200) Subject: padOsd: Use non-deprecated librsvg API to create handle X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~845^2^2~237 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=38da54fb02cce95ff752cea2793525b9e922c600;p=gnome-shell.git padOsd: Use non-deprecated librsvg API to create handle On one hand, we were using a path instead of an URI on rsvg_handle_set_base_uri(). This broke at some point in librsvg (presumably for the best, handling paths there sounds non-standard) leaving a blank svg (As the base image wouldn't be accessed). On the other hand, we use this with the deprecated rsvg_handle_write() which we should drift away from. Using rsvg_handle_new_from_stream_sync() neatly solves both. We use newer API based on input streams and GFiles, and it internally does the right thing, bringing the pad OSD back to life. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1220 --- diff --git a/js/ui/padOsd.js b/js/ui/padOsd.js index 760f48a37..a4af47297 100644 --- a/js/ui/padOsd.js +++ b/js/ui/padOsd.js @@ -374,12 +374,12 @@ var PadDiagram = GObject.registerClass({ svgData += this._cssString(); svgData += this._wrappingSvgFooter(); - let handle = new Rsvg.Handle(); - handle.set_base_uri(GLib.path_get_dirname(this._imagePath)); - handle.write(svgData); - handle.close(); + let istream = new Gio.MemoryInputStream(); + istream.add_bytes(new GLib.Bytes(svgData)); - return handle; + return Rsvg.Handle.new_from_stream_sync(istream, + Gio.File.new_for_path(this._imagePath), + 0, null); } _updateDiagramScale() {